package com.dy.design_pattern_study.iterator_patern.dome1.impl;

import com.dy.design_pattern_study.iterator_patern.dome1.Aggregate;
import com.dy.design_pattern_study.iterator_patern.dome1.Iterator;

import java.util.ArrayList;
import java.util.List;

/**
 * @CreateBy zhangdingyi
 * @Date 2023-04-14
 * @Content 具体聚集类
 */
public class ConcreteAggregate extends Aggregate {

    //声明一个list 存放聚合对象
    private List<Object> items = new ArrayList<>();


    @Override
    public Iterator createIterator() {
        return new ConcreteIterator(this);
    }

    /**
     * 返回一个聚合总数
     * @return
     */
    public int count() {
        return items.size();
    }

    /**
     * 通过index索引获取到 对应的 items 聚合对象值
     * @param index
     * @return
     */
    public Object getItem(int index) {
        return items.get(index);
    }

    /**
     * 设置对应的 items 聚合对象 值
     * @param index
     * @param value
     */
    public void setItem(int index, Object value) {
        items.add(index, value);
    }
}
